課程資訊
課程名稱
演算法設計方法論
Design Strategies for Computer Algorithms 
開課學期
110-1 
授課對象
電機資訊學院  資訊工程學研究所  
授課教師
陳健輝 
課號
CSIE7130 
課程識別碼
922 U1810 
班次
 
學分
3.0 
全/半年
半年 
必/選修
選修 
上課時間
星期一3,4,5(10:20~13:10) 
上課地點
資102 
備註
總人數上限:50人 
Ceiba 課程網頁
http://ceiba.ntu.edu.tw/1101CSIE7130_ 
課程簡介影片
 
核心能力關聯
核心能力與課程規劃關聯圖
課程大綱
為確保您我的權利,請尊重智慧財產權及不得非法影印
課程概述

這門課的目的在於學習演算法設計的六個基本策略,如下所示。

  Greedy Method
  Dynamic Programming (DP)
  Prune-and-Search (P&S)
  Branch-and-Bound (B&B)
  Divide-and-Conquer (D&C)
  Plane Sweep

這門課有二次程式考試。第一次考試要求同學設計一個能解決 the longest
common subsequence problem 的 DP 程式與一個能解決 2-d linear
programming problem 的 P&S 程式。第二次考試要求同學設計一個能解決
the 0/1 knapsack problem 的 B&B 程式與一個能解決 2-d closest pair
problem 的 D&C 程式。以上四個 problems 與其相對應的演算法在課堂上將
會詳細介紹。

這二次考試在期末有一次補考機會。若補考成績低於或等於原始成績,
則以原始成績作為最終成績。若補考成績高於原始成績,則以
"原始成績+(補考成績-原始成績)x90%" 作為最終成績。

同學必須閱讀以下四篇論文(DP、P&S、B&B、D&C 各一篇),並繳交書面
閱讀報告。

  (DP) Wagner, "The string-to-string correction problem," Journal of the
   ACM, vol.21, no.1, 1974, 168-173.
  (P&S) Megiddo, "Linear-time algorithms for linear programming in R3
   and related problems," SIAM Journal on Computing, vol.12, no.4,
   1983, 759-776 (only Section 3 is required).
  (B&B) A personal assignment problem solved by the branch-and-
   bound strategy (in Section 5-6 of Lee, Tseng, Chang and Tsai's
   book: Introduction to the Design and Analysis of Algorithms).
  (D&C) Imai, Iri, and Murota, "Voronoi diagram in the Laguerre
   geometry and its applications," SIAM Journal on Computing,
   vol.14, no.1, 1985, 93-105.

每篇閱讀報告必須包含(但不限)以下內容,且必須用例子與圖表輔助說明。

  問題定義
  解法敘述(勿列出詳細程式碼)
  讀後心得

閱讀報告請以中文書寫(可夾雜英文專有名詞),勿剪貼原始論文內容拼湊
而成,應忠實地將自己所理解的內容寫出。例子與圖表可援用原始論文或
自創,敘述方式不必遵循原著可自創。老師將親自批閱同學的閱讀報告,
評分依據如下。

  態度(是否用心書寫?)
  能力(是否看懂論文且掌握重點?是否敘述清楚且精簡扼要?是否使用合適
   的例子與圖表輔助說明?)

此外,同學將分成八組研讀以下八篇論文(DP 三篇、P&S 一篇、B&B 與 D&C 各
二篇)並在課堂上報告。

  (DP) Knuth, "Optimal binary search trees," Acta Informatica, vol.1, 1971,
   14-25.
  (DP) Hsu and Du, "New algorithms for the LCS problem," Journal of
   Computer and System Sciences, vol.29, 1984, 133-152.
  (DP) Wang, Chen, and Park, "On the set LCS and set-set LCS problems,"
   Journal of Algorithms, vol.14, no.3, 1993, 466-477. (ignore Section 3:  
   The Set LCS Problem)
  (P&S) Bhattacharya, Jadhav, Mukhopadhyay, and Robert, "Optimal
   algorithms for some intersection radius problems," Computing, vol.52,
   no.3, 1994, 269-279. (ignore Section 2: Intersection Radius Problem
   for Hyperplanes)
  (B&B) Wang and Lee, "An Efficient Channel Routing Algorithm to Yield
   an Optimal Solution," IEEE Transactions on computers, vol.39, no.7,
   1990, 957-962.
  (B&B) Section 5-9 of Lee, Tseng, Chang and Tsai's book: Introduction to
   the Design and Analysis of Algorithms.
  (D&C) Guting, "Optimal divide-and-conquer to compute measure and
   contour for a set of iso-rectangles," Acta Informatica, vol.21, 1984,
   271-291.
  (D&C) Lee, "An optimal time and minimal space algorithm for rectangle
   intersection problems," International Journal of Computer and Information
   Sciences, vol.15, no.1, 1984, 23-32.

所有論文皆有電子檔供下載。針對同學的報告,老師將會給予適當建議
(若有需要),相信對同學日後職場生涯有所助益。 

課程目標
  熟悉上述六種演算法設計的基本策略
  增進 problem solving 與程式設計的能力
  增進科技論文閱讀的能力
  增進科技論文報告的能力與技巧 
課程要求
  修習過資料結構課程
  具備撰寫程式的能力 
預期每週課後學習時數
 
Office Hours
每週二 13:00~18:00
每週一 08:00~18:00
每週五 13:00~18:00
每週四 08:00~14:00
每週三 08:00~18:00 備註: 吃飯時間可能不在 建議要來前可以先寄Email 
指定閱讀
待補 
參考書目
上課內容以老師自編講義為主。
  
評量方式
(僅供參考)
 
No.
項目
百分比
說明
1. 
期中考  
20% 
 
2. 
期末考  
20% 
 
3. 
作業  
40% 
 
4. 
分組報告  
20% 
 
 
課程進度
週次
日期
單元主題
第2週
9/27  課程介紹、Greedy Method  
第3週
10/04  Greedy Method、DP  
第4週
10/11  補假 
第5週
10/18  DP 
第6週
10/25  DP、P&S 
第7週
11/01  P&S 
第8週
11/08  P&S、B&B 
第9週
11/15  校慶日停課 
第10週
11/22  第一次考試  
第11週
11/29  B&B 
第12週
12/06  B&B、D&C 
第13週
12/13  D&C 
第14週
12/20  D&C、Plane Sweep 
第15週
12/27  論文報告 (第 1 組、第 2 組、第 3 組) 
第16週
1/03  第二次考試  
第17週
1/10  論文報告 (第 4 組、第 5 組、第 6 組)  
第18週
1/13  論文報告 (第 7 組、第 8 組)
(1/17: 補考)